class MunicipiosController < ApplicationController
  # GET /municipios
  # GET /municipios.xml
  # FIXME setar a collation pra ordenar direito http://dev.mysql.com/doc/refman/5.0/en/charset-collation-effect.html
  def index
    if params[:q]
      search = Municipio.search(:nome_like => params[:q])
      @municipios = search.all :include => :estado, :order => :nome
    else
      @municipios = Municipio.paginate :page => params[:page], :per_page => 15, :order => :nome
    end
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @municipios }
      format.json { render :json => @municipios.to_json(:only => [:id, :nome], :methods => :uf) }
    end
  end

  # GET /municipios/1
  # GET /municipios/1.xml
  def show
    @municipio = Municipio.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @municipio }
    end
  end

  # GET /municipios/new
  # GET /municipios/new.xml
  def new
    @municipio = Municipio.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @municipio }
    end
  end

  # GET /municipios/1/edit
  def edit
    @municipio = Municipio.find(params[:id])
  end

  # POST /municipios
  # POST /municipios.xml
  def create
    @municipio = Municipio.new(params[:municipio])

    respond_to do |format|
      if @municipio.save
        flash[:notice] = 'Município cadastrado com sucesso.'
        format.html { redirect_to(@municipio) }
        format.xml  { render :xml => @municipio, :status => :created, :location => @municipio }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @municipio.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /municipios/1
  # PUT /municipios/1.xml
  def update
    @municipio = Municipio.find(params[:id])

    respond_to do |format|
      if @municipio.update_attributes(params[:municipio])
        flash[:notice] = 'Município atualizado com sucesso.'
        format.html { redirect_to(@municipio) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @municipio.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /municipios/1
  # DELETE /municipios/1.xml
  def destroy
    @municipio = Municipio.find(params[:id])
    @municipio.destroy

    respond_to do |format|
      format.html { redirect_to(municipios_url) }
      format.xml  { head :ok }
    end
  end
end
